package com.demo.utils;


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.dbutils.DbUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

//专门用来打开数据库连接的工具类
public class JDBCutils {
    //最终需要通过数据源获得一个连接  定义全局变量
    private static DruidDataSource dataSource=null;
    //静态代码块   类一加载的时候就执行
    static {
        try {
            //获取properties文件
            Properties prop=new Properties();
            //通过类加载器从src下获取
            prop.load(JDBCutils.class.getClassLoader().getResourceAsStream("druid.properties"));
            //得到德鲁伊的数据源
            dataSource= (DruidDataSource) DruidDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public static Connection getCoon() {

        Connection conn=null;
        //通过德鲁伊的数据源获取数据库连接
        try {
            conn=dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    //关闭方法1
    public static void closeConn(Connection conn, PreparedStatement pst, ResultSet rs){
        try {
            if (rs!=null){
                rs.close();
            }
            if (pst!=null){
                pst.close();
            }
            if (conn!=null){
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //关闭方法2
    public static void closeConn2(Connection conn){
        DbUtils.closeQuietly(conn);
    }
}
